package com.shrct.businessprocess.project;

import com.shrct.businessprocess.project.RCSalesAssignment;
import com.shrct.businessprocess.project.RCSalesCommissionYearSettlement;
import com.shrct.businessprocess.project.impl.RCSaleCommissionTotalSettlementImpl;
import com.shrct.businessprocess.project.proxy.RCSaleCommissionTotalSettlementProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import java.util.Collection;
import java.util.Date;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = RCSaleCommissionTotalSettlementImpl.class)
public interface RCSaleCommissionTotalSettlement extends IModelObject {
  public abstract Collection<RCSalesCommissionYearSettlement> getYearParts();
  
  public abstract RCSalesCommissionYearSettlement createAndAddtoYearParts();
  
  public abstract RCSalesCommissionYearSettlement createAndAddtoYearParts(final Procedure1<RCSalesCommissionYearSettlement> updater);
  
  public abstract RCSaleCommissionTotalSettlement removeFromYearParts(final RCSalesCommissionYearSettlement rCSalesCommissionYearSettlement);
  
  public abstract RCSaleCommissionTotalSettlement removeAllYearParts();
  
  public abstract RCSalesAssignment getSaler();
  
  public abstract RCSaleCommissionTotalSettlement setSaler(final RCSalesAssignment saler);
  
  public abstract Date getDate();
  
  public abstract RCSaleCommissionTotalSettlement setDate(final Date date);
  
  public abstract Double getTotalCommissionAmount();
  
  public abstract Double getTotalOverflowCommissionAmount();
  
  public abstract Double getTotalTeamPrizeAmount();
  
  public abstract Double getTotalAmount();
  
  public abstract RCSaleCommissionTotalSettlementProxy toProxy();
}
